// var i;
// var AL_GAME_HUA_i18nLabel = require("./AL_GAME_HUA_i18nLabel");
// var c = cc._decorator;
// var l = c.ccclass;
// var u = c.property;
// var p =
//     (c.menu,
//     (function (e) {
//         function t() {
//             var t = (null !== e && e.apply(this, arguments)) || this;
//             t.node_guide_left = null;
//             t.node_guide_right = null;
//             return t;
//         }
//         __extends(t, e);
//         t.prototype.show = function (e, t, n) {
//             if (void 0 === n) {
//                 n = cc.v2(0, 10);
//             }
//             this.node.active = !0;
//             var o;
//             var i = e.convertToWorldSpaceAR(cc.v2());
//             var r = this.node.convertToNodeSpaceAR(i);
//             var a = -1;
//             r.x > 0
//                 ? ((this.node_guide_left.active = !1), (this.node_guide_right.active = !0), (o = this.node_guide_right), (a = 1))
//                 : ((this.node_guide_left.active = !0), (this.node_guide_right.active = !1), (o = this.node_guide_left), (a = -1));
//             o.getChildByName("Label").getComponent(AL_GAME_HUA_i18nLabel.i18nLabel).string = t;
//             o.setPosition(r.add(cc.v2(n.x * a, n.y)));
//             o.stopAllActions();
//             o.scale = 0;
//             cc.tween(o)
//                 .to(
//                     0.5,
//                     {
//                         scale: 1
//                     },
//                     {
//                         easing: "backOut"
//                     }
//                 )
//                 .by(
//                     0.5,
//                     {
//                         y: 8
//                     },
//                     {
//                         easing: "sineInOut"
//                     }
//                 )
//                 .by(
//                     0.5,
//                     {
//                         y: -8
//                     },
//                     {
//                         easing: "sineInOut"
//                     }
//                 )
//                 .union()
//                 .repeatForever()
//                 .start();
//         };
//         t.prototype.hide = function () {
//             this.node.active = !1;
//             if (this.onHide) {
//                 this.onHide();
//             }
//         };
//         t.prototype.start = function () {
//             var e = this;
//             this.node.on(
//                 "touchstart",
//                 function () {
//                     e.hide();
//                 },
//                 this
//             );
//             this.node._touchListener.setSwallowTouches(!1);
//         };
//         __decorate([u(cc.Node)], t.prototype, "node_guide_left", void 0);
//         __decorate([u(cc.Node)], t.prototype, "node_guide_right", void 0);
//         return __decorate([l], t);
//     })(cc.Component));
// exports.default = p;


// 引入本地化标签模块
const i18nLabelModule = require("./AL_GAME_HUA_i18nLabel");

// Cocos Creator 装饰器
const { ccclass, property } = cc._decorator;

/**
 * 该类用于处理引导提示的显示与隐藏
 */
@ccclass
class GuideDisplay extends cc.Component {
    // 引导提示节点，分别对应左右提示
    @property(cc.Node)
    node_guide_left = null;

    @property(cc.Node)
    node_guide_right = null;

    /**
     * 显示引导提示
     * @param {cc.Node} targetNode - 目标节点
     * @param {string} message - 显示的信息
     * @param {cc.Vec2} [offset=cc.v2(0, 10)] - 位置偏移量
     */
    show(targetNode, message, offset = cc.v2(0, 10)) {
        this.node.active = true;

        // 计算世界坐标位置并转换为节点内位置
        const worldPosition = targetNode.convertToWorldSpaceAR(cc.v2());
        const localPosition = this.node.convertToNodeSpaceAR(worldPosition);

        let activeGuide = null;
        let directionMultiplier = -1;

        // 根据位置决定显示左侧还是右侧引导
        if (localPosition.x > 0) {
            this.node_guide_left.active = false;
            this.node_guide_right.active = true;
            activeGuide = this.node_guide_right;
            directionMultiplier = 1;
        } else {
            this.node_guide_left.active = true;
            this.node_guide_right.active = false;
            activeGuide = this.node_guide_left;
        }

        // 设置引导文本和位置
        const labelComponent = activeGuide.getChildByName("Label").getComponent(i18nLabelModule.i18nLabel);
        labelComponent.string = message;

        activeGuide.setPosition(localPosition.add(cc.v2(offset.x * directionMultiplier, offset.y)));

        // 停止所有动作并开始新动画
        activeGuide.stopAllActions();
        activeGuide.scale = 0;
        cc.tween(activeGuide)
            .to(0.5, { scale: 1 }, { easing: "backOut" })
            .by(0.5, { y: 8 }, { easing: "sineInOut" })
            .by(0.5, { y: -8 }, { easing: "sineInOut" })
            .union()
            .repeatForever()
            .start();
    }

    /**
     * 隐藏引导提示
     */
    hide() {
        this.node.active = false;
        if (this.onHide) {
            this.onHide();
        }
    }

    /**
     * 组件启动时绑定事件
     */
    start() {
        this.node.on("touchstart", () => {
            this.hide();
        }, this);

        this.node._touchListener.setSwallowTouches(false);
    }
}

exports.default = GuideDisplay;